package com.cnpc.framework.base.entity;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

import com.lc.entity.UserFile;
import com.lc.entity.UserTag;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import com.cnpc.framework.annotation.Header;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@Entity
@Table(name = "tbl_user")
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler", "fieldHandler" })
@Data
public class User extends BaseEntity {

    private static final long serialVersionUID = 6093546087036436583L;


    @Header(name = "姓名")
    @Column(name = "name")
    private String name;

    @Header(name = "性别")
    @Column(name = "sex")
    private String sex;

    @Header(name = "出生年月")
    @Column(name = "birthday")
    private String birthday;

    @Header(name = "登录名")
    @Column(name = "login_name")
    private String loginName;

    @Header(name = "密码")
    @Column(name = "password")
    private String password;

    @Header(name = "邮箱")
    @Column(name = "email", length = 50)
    private String email;

    @Header(name = "婚姻状况")
    @Column(name = "marriage", length = 50)
    private String marriage;


    @Header(name = "手机")
    @Column(name = "mobile")
    private String mobile;

    @Header(name = "QQ")
    @Column(name = "qq")
    private String qq;

    @Header(name = "微信")
    @Column(name = "wechat")
    private String wechat;

    @Header(name = "是否开启账号")
    @Column(name = "open_account", length = 5)
    private String openAccount;

    @Header(name = "超级管理员")
    @Column(name = "isSuperAdmin")
    private String isSuperAdmin;

    @Header(name="部门ID")
    @Column(name="dept_id")
    private String deptId;


    @Header(name = "其他")
    @Column(name = "remark")
    private String remark;

    @Header(name = "编号")
    @Column(name = "empno")
    private String empno;


    @Header(name = "入职时间")
    @Column(name = "join_time")
    private String joinTime;


    @Header(name = "员工类型")
    @Column(name = "user_type")
    private String userType;

    @Header(name = "岗位")
    @Column(name = "user_job")
    private String userJob;

    @Header(name = "token")
    @Column(name = "token")
    private String token;

    @Header(name = "token有效期")
    @Column(name = "token_limit")
    private String token_limit;

    @Header(name = "籍贯")
    @Column(name = "birthplace")
    private String birthplace;

    @Header(name = "住址")
    @Column(name = "address")
    private String address;

    @Header(name = "身份证号")
    @Column(name = "idcard")
    private String idcard;

    @Header(name = "身份证图片")
    @Column(name = "idcardpic")
    private String idcardpic;

    @Header(name = "政治面貌")
    @Column(name = "politstatus")
    private String politstatus;

    @Header(name = "民族")
    @Column(name = "nation")
    private String nation;

    @Header(name = "学位")
    @Column(name = "degree")
    private String degree;

    @Header(name = "学历")
    @Column(name = "education")
    private String education;

    @Header(name = "毕业学校")
    @Column(name = "school")
    private String school;



    @Header(name = "社保卡号")
    @Column(name = "sscard")
    private String sscard;


    @Header(name = "公积金账号")
    @Column(name = "pafaccount")
    private String pafaccount;


    @Header(name = "工资账号")
    @Column(name = "salaryaccount")
    private String salaryaccount;


    @Header(name = "报销账号")
    @Column(name = "reimburseaccount")
    private String reimburseaccount;


    @Header(name = "紧急联系人")
    @Column(name = "emgcname")
    private String emgcname;

    @Header(name = "公积金账号开户银行")
    @Column(name = "pafbank")
    private String pafbank;

    @Header(name = "工资账号开户行")
    @Column(name = "salarybank")
    private String salarybank;

    @Header(name = "报销账号开户银行")
    @Column(name = "reimbursebank")
    private String reimbursebank;


    @Header(name = "紧急联系人电话")
    @Column(name = "emgcmobile")
    private String emgcmobile;

    @Header(name = "0 待审核 1已审核")
    @Column(name = "sh")
    private String sh;

    @Header(name = "审核时间")
    @Column(name = "shtime")
    private String shtime;

    @Header(name = "驳回原因")
    @Column(name = "reason")
    private String reason;

    @Header(name = "职级")
    @Column(name = "zhiji")
    private String zhiji;

    @Header(name = "变更项")
    @Column(name = "changetype")
    private String changetype;

    @Header(name = "签名")
    @Column(name = "signature")
    private String signature;


    @Header(name = "签名带章")
    @Column(name = "seal")
    private String seal;

    @Header(name = "角色id")
    @Column(name = "roleIds")
    private String roleIds;

    @Transient
    private String avatarId;

    @Transient
    private String deptLevelCode;

    @Transient
    private String deptName;

    @Transient
    private String edituser;

    @Transient
    private List<UserTag> userTags0;

    @Transient
    private List<UserTag> userTags1;

    @Transient
    private List<UserTag> userTags2;

    @Transient
    private List<UserTag> userTags3;

    @Transient
    private List<UserTag> userTags4;

    @Transient
    private List<UserTag> userTags5;

    @Transient
    private List<UserTag> userTags6;

    @Transient
    private List<UserFile> userFiles;
}
